import {
	showToast,
	getUserToken
} from '@/utils/utils';

// utils/request.js
const request = {
	// 基础请求方法
	_request(method, url, data = {}) {
		return new Promise((resolve, reject) => {
			const token = getUserToken(); // 从本地存储获取令牌
			uni.request({
				url: url,
				method: method,
				data: data,
				header: {
					'Authorization': token ? `Bearer ${token}` : ''
				},
				success: (res) => {
					if (res.statusCode === 200) {
						if (res.data.success) {
							resolve(res.data); // 请求成功，操作成功，返回数据
						} else {
							showToast(res.data.msg)
							reject(res); // 请求成功，操作失败，返回错误信息。
						}
					} else {
						uni.showToast({
							icon: "error",
							title: '数据接口异常',
							position: 'bottom'
						})
						reject(res); // 请求失败，返回错误信息
					}
				},
				fail: (err) => {
					uni.showToast({
						icon: "error",
						title: '网络请求失败',
						position: 'bottom'
					})
					reject(err); // 网络请求失败，返回错误信息
				}
			});
		});
	},
	// GET 请求方法
	get(url, data = {}) {
		return this._request('GET', url, data);
	},
	// POST 请求方法
	post(url, data = {}) {
		return this._request('POST', url, data);
	},
};

export default request;